package com.kang.common.util;

import lombok.Data;

import java.util.HashMap;
import java.util.Map;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

@Data
public class R {
	private Integer code;
	private String message;
	private Map<String, Object> data;

	// 构造函数初始化
	private R() {
		this.data = new ConcurrentHashMap<>(); // 使用线程安全的ConcurrentHashMap
	}

	// 1. 成功时的方法
	public static R ok() {
		R r = new R();
		r.setCode(200);
		r.setMessage("操作成功！");
		return r;
	}

	// 2. 失败时的调用方法
	public static R error() {
		R r = new R();
		r.setCode(500);
		r.setMessage("操作失败！");
		return r;
	}

	// 3. 设置出错信息
	public R message(String message) {
		this.setMessage(message);
		return this;
	}

	// 4. 修改错误码
	public R code(Integer code) {
		this.setCode(code);
		return this;
	}

	// 5. 设置添加数据
	public R data(String key, Object value) {
		this.data.put(key, value);
		return this;
	}

	// 6. 设置添加多个数据
	public R data(Map<String, Object> map) {
		this.data.putAll(map);  // 使用putAll来合并多个数据
		return this;
	}
}

